// 多线程操作同一个对象
// 买票的例子

public class Thread04 implements Runnable{
    // num
    private int ticketNum=20;

    @Override
    public void run() {
        while(true){
            if(ticketNum<=0){
                break;
            }
            // 模拟延时
            try{
                Thread.sleep(200);
            }catch(InterruptedException e){
                e.printStackTrace();
            }
            // get cur thread name
            String name=Thread.currentThread().getName();
            System.out.println(name+"-》拿到了第"+(ticketNum--)+"张票");
        }
    }

    public static void main(String[] args) {
        Thread04 ticket=new Thread04();

        new Thread(ticket,"小明").start();
        new Thread(ticket,"老师").start();
        new Thread(ticket,"黄牛党").start();

    }
}
// 小明-》拿到了第-1张票
// 老师-》拿到了第11张票
// 小明-》拿到了第11张票